home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zf.d64 / src.basic2 < prev    next >
Text File  |  2007-03-01  |  3KB  |  260 lines

  1. ;-------------------------------;
  2. ; PACKAGE 'BASIC'               ;
  3. ;                               ;
  4. ; RUNNING A BASIC PROGRAM FROM  ;
  5. ; CBM COMAL-80 VS 2.01          ;
  6. ;                               ;
  7. ; BY M.BOKHORST, 30-08-1985     ;
  8. ;                               ;
  9. ; DUTCH COMAL80 USERS GROUP     ;
  10. ; LAST REVISION: 120386         ;
  11. ;-------------------------------;
  12. ;
  13. PC =$9E00
  14. ;
  15. SETNAM =$FFBD
  16. SETLFS =$FFBA
  17. LOAD =$FFD5
  18. OPEN =$FFC0
  19. CHROUT =$FFD2
  20. PROC =112
  21. ENDPR =126
  22. VALUE =114
  23. INT =1
  24. STR =2
  25. RUNERR =$C9FB
  26. DUMMY =$CA2F
  27. DEFPAG =%01000110
  28. FNDPAR =$C896
  29. COPY1 =$45
  30. BANK =1
  31. OVRLAY =$DE00
  32. SWITCH =$DF00
  33. NMINV =$0318
  34. IMAIN =$0302
  35. CBM80 =$8008
  36. MSGFLG =$9D
  37. TXTTAB =$2B
  38. CR =13
  39. INTERP =$A7AE
  40. VARTAB =$2D
  41. SPACE =$033C
  42. INJUMP =$6C
  43. RESET =$FFFC
  44. STOREX =$8E
  45. STATUS =$90
  46. REPORT =$E0F9
  47. IOINIT =$FF84
  48. RAMTAS =$FF87
  49. RESTOR =$FF8A
  50. CINT =$FF81
  51. BASVEC =$E453
  52. BSINIT =$E3BF
  53. INTRO =$E422
  54. LDERR =$E19C
  55. BIND =$A533
  56. RUN =$A659
  57. BCKFLG =$07FE
  58. RESERV =$07FF
  59. PRINT =$AB1E
  60. GETIN =$FFE4
  61. DIRECT =$3A
  62. TXTCOL =$0286
  63. BORDER =$D020
  64. BACKGR =$D021
  65. MEMSIZ =$37
  66. TOPOS =$0283
  67. ;
  68. ;- START MODULE ----------------;
  69. ;
  70. * =PC
  71. ;
  72. ;- PACKAGE DEFINITION ----------;
  73. ;
  74.  .BYTE DEFPAG
  75.  .WORD END
  76.  .WORD DUMMY
  77.  .BYTE 5,'BASIC'
  78.  .WORD PROCS
  79.  .WORD DUMMY
  80.  .BYTE 0
  81. ;
  82. ;- PROCS & FUNCS ---------------;
  83. ;
  84. PROCS .BYTE 2,'GO'
  85.  .WORD HEAD
  86.  .BYTE 0
  87. ;
  88. ;- HEADERS ---------------------;
  89. ;
  90. HEAD .BYTE PROC,<START,>START,3
  91.  .BYTE VALUE+STR
  92.  .BYTE VALUE+INT
  93.  .BYTE VALUE+INT
  94.  .BYTE ENDPR
  95. ;
  96. ;- CODE ------------------------;
  97. ;
  98. START LDA #1
  99.  JSR FNDPAR
  100.  LDY #2
  101.  LDA (COPY1),Y
  102.  BNE ARGERR
  103.  INY
  104.  LDA (COPY1),Y
  105.  BEQ ARGERR
  106.  CMP #17
  107.  BCC OK
  108. ARGERR LDX #1
  109.  JMP RUNERR
  110. OK STA EIND
  111.  LDX #0
  112.  INY
  113. NAME LDA (COPY1),Y
  114.  STA EIND+1,X
  115.  INX
  116.  INY
  117.  CPX EIND
  118.  BCC NAME
  119.  LDA #2
  120.  JSR FNDPAR
  121.  LDY #0
  122.  LDA (COPY1),Y
  123.  INY
  124.  ORA (COPY1),Y
  125.  STA BCKFLG
  126.  LDA #3
  127.  JSR FNDPAR
  128.  LDY #0
  129.  LDA (COPY1),Y
  130.  INY
  131.  ORA (COPY1),Y
  132.  STA RESERV
  133. ;
  134.  SEI
  135.  LDA #$37
  136.  STA BANK
  137.  LDX #$E0
  138.  LDY #7
  139.  LDA #0
  140. PORT STA SWITCH,Y
  141.  DEY
  142.  BPL PORT
  143.  STX OVRLAY
  144.  STX CBM80
  145.  LDX #$FF
  146.  TXS
  147.  CLD
  148.  JSR IOINIT
  149.  JSR RAMTAS
  150.  JSR RESTOR
  151.  JSR CINT
  152.  LDA #2
  153.  STA BORDER
  154.  LDA #0
  155.  STA BACKGR
  156.  LDA #1
  157.  STA TXTCOL
  158.  CLI
  159. ;
  160.  LDA RESERV
  161.  BEQ NORES
  162.  LDA #<PC
  163.  LDY #>PC
  164.  STA MEMSIZ
  165.  STY MEMSIZ+1
  166.  STA TOPOS
  167.  STY TOPOS+1
  168. NORES JSR BASVEC
  169.  JSR BSINIT
  170.  JSR INTRO
  171.  LDX #$FB
  172.  TXS
  173.  LDA BCKFLG
  174.  BEQ NOBACK
  175.  LDA #<NMI
  176.  LDY #>NMI
  177.  STA NMINV
  178.  STY NMINV+1
  179.  LDA #<BACK
  180.  LDY #>BACK
  181.  STA IMAIN
  182.  STY IMAIN+1
  183. NOBACK LDA #$80
  184.  STA MSGFLG
  185.  LDA #$FF
  186.  STA DIRECT
  187. ;
  188.  LDA EIND
  189.  LDX #<NA
  190.  LDY #>NA
  191.  JSR SETNAM
  192.  LDX #8
  193.  LDY #$FF
  194.  JSR SETLFS
  195.  LDA #$00
  196.  LDX TXTTAB
  197.  LDY TXTTAB+1
  198.  JSR LOAD
  199.  BCS BACK
  200. NOLERR STX VARTAB
  201.  STY VARTAB+1
  202.  JSR BIND
  203.  LDA #0
  204.  STA MSGFLG
  205.  JSR RUN
  206.  LDA #CR
  207.  JSR CHROUT
  208.  JMP INTERP
  209. ;
  210. NMI LDX #$80
  211.  LDY #$00
  212. WAIT DEY
  213.  BNE WAIT
  214.  DEX
  215.  BNE WAIT
  216. BACK LDX #0
  217. NEXT LDA TEXT,X
  218.  BEQ LAST
  219.  JSR CHROUT
  220.  INX
  221.  BNE NEXT
  222. LAST JSR GETIN
  223.  CMP #CR
  224.  BNE LAST
  225.  SEI
  226.  LDA #$37
  227.  STA BANK
  228.  LDX #$80
  229.  LDY #7
  230.  LDA #0
  231. LABEL STA SWITCH,Y
  232.  DEY
  233.  BPL LABEL
  234.  LDA #STOREX
  235.  STA SPACE
  236.  LDA #<OVRLAY
  237.  STA SPACE+1
  238.  LDA #>OVRLAY
  239.  STA SPACE+2
  240.  LDA #INJUMP
  241.  STA SPACE+3
  242.  LDA #<RESET
  243.  STA SPACE+4
  244.  LDA #>RESET
  245.  STA SPACE+5
  246.  JMP SPACE
  247. ;
  248. EIND
  249. NA =EIND+1
  250. ;
  251.  .BYTE 0,0,0,0,0,0,0,0
  252.  .BYTE 0,0,0,0,0,0,0,0,0
  253. ;
  254. TEXT
  255. .BYTE CR
  256. .BYTE 'PRESS <RETURN> FOR COMAL'
  257. .BYTE 0
  258. END .END
  259. ;
  260.